<?php
//Config : Les informations personnels de l'instance (log, pass, etc)
require("../include/config.php");

//API Fonctions : les fonctions fournis de base par l'API
require("../API/php/fonctions.php");

//Header établie la connection à la base $connection
require("../API/php/header.php");

//Fonctions : Fonctions personnelles de l'instance
require("../php/fonctions.php");

//Mode debug
$modeDebug = false;

//Public ou privé (clé obligatoire)
$modePublic = true;

//Mode de sortie text,json,xml,csv
//pour xml et csv $object_retour->data["resultat"] doit contenir qu'un est unique array
$modeSortie = "json";

//Liens de test
// phpsql/exemple.php?milis=123450&keyAuthODA=42c643cc44c593c5c2b4c5f6d40489dd&ctrl=ok&test=hello

//Définition des entrants
$arrayInput = array(
    "ctrl" => null
);

//Définition des entrants optionel
$arrayInputOpt = array(
    "option" => null
);

//Récupération des entrants
$arrayValeur = recupInput($arrayInput,$arrayInputOpt);

//Object retour minima
// $object_retour->strErreur string
// $object_retour->data  string
// $object_retour->statut  string

//--------------------------------------------------------------------------
//Pour test on récupère les paramètres de l'appli
$strSql = "SELECT *, TIME_TO_SEC(TIMEDIFF(d.`dateTime_end`,d.`dateTime_start`)) as 'duree', IF(INSTR(d.`commentaires_end`, 'OK') != 0, 'OK', 'KO') as 'statut'
    FROM (
        SELECT a.`id` as 'id_start', a.`dateTime` as 'dateTime_start', a.`commentaires` as 'commentaires_start',
        b.`id` as 'id_end', b.`dateTime` as 'dateTime_end', b.`commentaires` as 'commentaires_end',
        info_core.`commentaires` as 'commentaires_core', info_comm.`commentaires` as 'commentaires_comm'
        FROM `".$prefixTable."tab_log` a
            LEFT OUTER JOIN `".$prefixTable."tab_log` b
            ON b.`id` = (SELECT MIN(c.`id`)
                FROM `".$prefixTable."tab_log` c
                WHERE 1=1
                AND c.`type` = 2
                AND c.`commentaires` like '%fin%'
                AND TIME_TO_SEC(TIMEDIFF(c.`dateTime`,a.`dateTime`)) <  360 
                AND c.`id` > a.`id`
            )
            LEFT OUTER JOIN `".$prefixTable."tab_log` info_core
            ON info_core.`id` = (SELECT MIN(d.`id`)
                FROM `".$prefixTable."tab_log` d
                WHERE 1=1
                AND d.`type` = 2
                AND d.`commentaires` like '%data_oceane_tickets_core%'
                AND TIME_TO_SEC(TIMEDIFF(d.`dateTime`,a.`dateTime`)) <  360 
                AND d.`id` > a.`id`
            )
            LEFT OUTER JOIN `".$prefixTable."tab_log` info_comm
            ON info_comm.`id` = (SELECT MIN(e.`id`)
                FROM `".$prefixTable."tab_log` e
                WHERE 1=1
                AND e.`type` = 2
                AND e.`commentaires` like '%data_oceane_tickets_commentaires%'
                AND TIME_TO_SEC(TIMEDIFF(e.`dateTime`,a.`dateTime`)) <  360 
                AND e.`id` > a.`id`
            )
        WHERE 1=1
        AND a.`commentaires` like '%start%'
        AND a.`type` = 2
    ) d
    ORDER BY d.`id_start` desc
    LIMIT 5
";

// On envois la requète
$select = $connection->query($strSql) or die('Erreur SQL !'.$strSql.'<br>'.print_r($connection->errorInfo(), true));

// On indique que nous utiliserons les résultats en tant qu'objet
$select->setFetchMode(PDO::FETCH_OBJ);

// On transforme les résultats en tableaux d'objet
$statusSynchroBriseNOA = new stdClass();
$statusSynchroBriseNOA->data = $select->fetchAll(PDO::FETCH_OBJ);
$statusSynchroBriseNOA->nombre = count($statusSynchroBriseNOA->data);

$object_retour->data["statusSynchroBriseNOA"] = $statusSynchroBriseNOA;

//--------------------------------------------------------------------------
if($modeDebug){
    $strSorti .= ($strSql);
}

require("../API/php/footer.php");
?>